package entity;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@NoArgsConstructor
@Data
public class YouGetVideo {
    private String url;
    private String title;
    private String site;
    private StreamsDTO streams;
    private ExtraDTO extra;

    @NoArgsConstructor
    @Data
    public static class StreamsDTO {
        private StreamsDTO.FlvDTO flv;
        private StreamsDTO.Flv720DTO flv720;
        private StreamsDTO.Flv480DTO flv480;
        private StreamsDTO.Flv360DTO flv360;
        private StreamsDTO.DashflvDTO dashflv;
        private StreamsDTO.Dashflv720DTO dashflv720;
        private StreamsDTO.Dashflv480DTO dashflv480;
        private StreamsDTO.Dashflv360DTO dashflv360;

        @NoArgsConstructor
        @Data
        public static class FlvDTO {
            private String container;
            private String quality;
            private Integer size;
            private List<String> src;
        }

        @NoArgsConstructor
        @Data
        public static class Flv720DTO {
            private String container;
            private String quality;
            private Integer size;
            private List<String> src;
        }

        @NoArgsConstructor
        @Data
        public static class Flv480DTO {
            private String container;
            private String quality;
            private Integer size;
            private List<String> src;
        }

        @NoArgsConstructor
        @Data
        public static class Flv360DTO {
            private String container;
            private String quality;
            private Integer size;
            private List<String> src;
        }

        @NoArgsConstructor
        @Data
        public static class DashflvDTO {
            private String container;
            private String quality;
            private List<List<String>> src;
            private Integer size;
        }

        @NoArgsConstructor
        @Data
        public static class Dashflv720DTO {
            private String container;
            private String quality;
            private List<List<String>> src;
            private Integer size;
        }

        @NoArgsConstructor
        @Data
        public static class Dashflv480DTO {
            private String container;
            private String quality;
            private List<List<String>> src;
            private Integer size;
        }

        @NoArgsConstructor
        @Data
        public static class Dashflv360DTO {
            private String container;
            private String quality;
            private List<List<String>> src;
            private Integer size;
        }
    }

    @NoArgsConstructor
    @Data
    public static class ExtraDTO {
        private String referer;
        private String ua;
    }
}
